import 'dart:async';
// ignore: avoid_web_libraries_in_flutter
import 'dart:html' as html show window;

import 'platform_service_stub.dart';

// Re-export interface so conditional import consumers see PlatformService type
export 'platform_service_stub.dart';

/// Web 平台的 PlatformService 实现：
/// - 平台版本返回浏览器 `userAgent`；
/// - 不支持本地文件路径（返回 null）；
/// - 文件事件为空流（保持跨平台 API 一致）。
class WebPlatformService implements PlatformService {
  WebPlatformService();

  /// 获取平台版本字符串（浏览器 `userAgent`）。
  /// 返回精确到浏览器/内核的标识，便于问题定位与统计分析。
  @override
  Future<String?> getPlatformVersion() async {
    return html.window.navigator.userAgent;
  }

  /// Web 平台不支持本地文件路径，返回 null。
  /// 上层应在 `null` 情况下禁用文件写入相关功能或降级为仅内存行为。
  @override
  Future<String?> getLogRootPath() async {
    return null;
  }

  /// Web 平台不提供本地文件事件，返回空流。
  /// 事件结构保持 `{type, path, sizeBytes?, modifiedMs?, tsMs}` 的跨平台签名。
  @override
  Stream<Map<String, dynamic>> fileEvents() {
    return const Stream<Map<String, dynamic>>.empty();
  }
}

/// Web 平台服务实例工厂。
PlatformService getPlatformService() => WebPlatformService();
